Cryptographic techniques are used to protect information from unauthorized viewing/use. That information could take many forms, such as data, text or multimedia content, for example.
FIG. 1 shows a general outline of a generic process/apparatus for encryption or decryption of information. The cryptographic apparatus 10 comprises a processor 11 or similar that implements a cryptographic/cipher algorithm 12 using an executable program/code. The cryptographic algorithm 12 could be an encryption algorithm (cipher) or a decryption algorithm (inverse cipher). If the apparatus is implementing an encryption function, it receives information 13 (e.g. cleartext), and an encryption key or keys 14. The cipher algorithm uses these inputs to produce output 15 which is an encrypted form of the information (e.g. ciphertext). Alternatively, if the cryptographic apparatus is implementing a decryption function, it receives encrypted information (e.g. ciphertext) and a decryption key or keys. The inverse cipher algorithm uses these inputs to produce output which is an unencrypted form of the ciphertext (e.g. cleartext).
There are two main types of cryptography: The first is black box cryptography, which involves the use of encryption algorithms executing on a trusted apparatus, such as a server, that cannot be accessed without authorization. This prevents unauthorized parties from gaining access to sensitive information (such as the encryption and decryption keys) by analyzing the encryption/decryption algorithms
The second is white box cryptography, which is used to protect sensitive information from scrutiny even if the algorithm is executed on an untrusted apparatus, which can be accessed without authorization. White box cryptography might be used, for example, on personal computers and mobile devices for receiving and decrypting media content for viewing on that device. On such a device any party has full visibility of code, inputs, outputs and internal states. A third party can attempt to circumvent white box cryptographic systems by correlating cipher inputs with cipher keys and cipher outputs.